
package std.ast
import std.collection.ArrayList

public import std.collection.ArrayList

/**
* @throws IllegalArgumentException
* @throws IndexOutOfBoundsException
*/
@!APILevel[
    since: "22",
    throwexception: true
]
public func compareTokens(tokens1: Tokens, tokens2: Tokens): Bool



@!APILevel[
    since: "22"
]
public open class Decl <: Node {
    @!APILevel[
        since: "22"
    ]
    public mut open prop identifier: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop keyword: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop annotations: ArrayList<Annotation>
    
    @!APILevel[
        since: "22"
    ]
    public mut prop modifiers: ArrayList<Modifier>
    
    /**
    * @throws [get] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop genericParam: GenericParam
    
    @!APILevel[
        since: "22"
    ]
    public mut prop genericConstraint: ArrayList<GenericConstraint>
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop constraintCommas: Tokens
    
    /**
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func hasAttr(attr: String): Bool
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func getAttrs(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public mut prop isGenericDecl: Bool
    
    /**
    * @throws NoneValueException
    * @throws ASTException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public open func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public open func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class ClassDecl <: Decl {
    /**
    * @throws ConcurrentModificationException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop upperBound: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop superTypes: ArrayList<TypeNode>
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop superTypeBitAnds: Tokens
    
    @!APILevel[
        since: "22"
    ]
    public mut prop body: Body
    
    /**
    * @throws NoneValueException
    * @throws ASTException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class StructDecl <: Decl {
    /**
    * @throws ConcurrentModificationException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop upperBound: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop superTypes: ArrayList<TypeNode>
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop superTypeBitAnds: Tokens
    
    @!APILevel[
        since: "22"
    ]
    public mut prop body: Body
    
    /**
    * @throws NoneValueException
    * @throws ASTException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class InterfaceDecl <: Decl {
    /**
    * @throws ConcurrentModificationException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop upperBound: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop superTypes: ArrayList<TypeNode>
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop superTypeBitAnds: Tokens
    
    @!APILevel[
        since: "22"
    ]
    public mut prop body: Body
    
    /**
    * @throws NoneValueException
    * @throws ASTException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class EnumDecl <: Decl {
    /**
    * @throws ConcurrentModificationException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop upperBound: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop superTypes: ArrayList<TypeNode>
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop superTypeBitAnds: Tokens
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop lBrace: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop constructors: ArrayList<Constructor>
    
    @!APILevel[
        since: "22"
    ]
    public mut prop decls: ArrayList<Decl>
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop rBrace: Token
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop ellipsis: Token
    
    /**
    * @throws NoneValueException
    * @throws ASTException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class ExtendDecl <: Decl {
    /**
    * @throws ConcurrentModificationException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [get|set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut override prop identifier: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop extendType: TypeNode
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop upperBound: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop superTypes: ArrayList<TypeNode>
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop superTypeBitAnds: Tokens
    
    @!APILevel[
        since: "22"
    ]
    public mut prop body: Body
    
    /**
    * @throws NoneValueException
    * @throws ASTException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class FuncDecl <: Decl {
    /**
    * @throws ConcurrentModificationException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    @!APILevel[
        since: "22"
    ]
    public mut prop overloadOp: Tokens
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop lParen: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop funcParams: ArrayList<FuncParam>
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop rParen: Token
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop colon: Token
    
    /**
    * @throws [get] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop declType: TypeNode
    
    @!APILevel[
        since: "22"
    ]
    public mut prop block: Block
    
    @!APILevel[
        since: "22"
    ]
    public func isConst(): Bool
    
    /**
    * @throws NoneValueException
    * @throws ASTException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class MainDecl <: Decl {
    /**
    * @throws ConcurrentModificationException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop lParen: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop funcParams: ArrayList<FuncParam>
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop rParen: Token
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop colon: Token
    
    /**
    * @throws [get] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop declType: TypeNode
    
    @!APILevel[
        since: "22"
    ]
    public mut prop block: Block
    
    /**
    * @throws ASTException
    * @throws NoneValueException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class MacroDecl <: Decl {
    /**
    * @throws ConcurrentModificationException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop lParen: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop funcParams: ArrayList<FuncParam>
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop rParen: Token
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop colon: Token
    
    /**
    * @throws [get] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop declType: TypeNode
    
    @!APILevel[
        since: "22"
    ]
    public mut prop block: Block
    
    /**
    * @throws ASTException
    * @throws NoneValueException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    /**
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class PrimaryCtorDecl <: Decl {
    /**
    * @throws ConcurrentModificationException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop lParen: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop funcParams: ArrayList<FuncParam>
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop rParen: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop block: Block
    
    @!APILevel[
        since: "22"
    ]
    public func isConst(): Bool
    
    /**
    * @throws ASTException
    * @throws NoneValueException
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class VarDecl <: Decl {
    /**
    * @throws IllegalArgumentException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws IndexOutOfBoundsException
    * @throws ConcurrentModificationException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [get] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop pattern: Pattern
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop colon: Token
    
    /**
    * @throws [get] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop declType: TypeNode
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop assign: Token
    
    /**
    * @throws [get] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop expr: Expr
    
    @!APILevel[
        since: "22"
    ]
    public func isConst(): Bool
    
    /**
    * @throws NoneValueException
    * @throws ASTException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public open class FuncParam <: Decl {
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop not: Token
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop colon: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop paramType: TypeNode
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop assign: Token
    
    /**
    * @throws [get] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop expr: Expr
    
    @!APILevel[
        since: "22"
    ]
    public func isMemberParam(): Bool
    
    /**
    * @throws NoneValueException
    * @throws ASTException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public open func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public open func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class PropDecl <: Decl {
    /**
    * @throws ConcurrentModificationException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop colon: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop declType: TypeNode
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop lBrace: Token
    
    /**
    * @throws [get] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop getter: FuncDecl
    
    /**
    * @throws [get] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop setter: FuncDecl
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop rBrace: Token
    
    /**
    * @throws NoneValueException
    * @throws ASTException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class TypeAliasDecl <: Decl {
    /**
    * @throws ConcurrentModificationException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop assign: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop aliasType: TypeNode
    
    /**
    * @throws NoneValueException
    * @throws ASTException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class MacroExpandDecl <: Decl {
    /**
    * @throws ConcurrentModificationException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    @!APILevel[
        since: "22"
    ]
    public mut prop fullIdentifier: Token
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop lSquare: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop macroAttrs: Tokens
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop rSquare: Token
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop lParen: Token
    
    /**
    * @throws [set] ParseASTException
    * @throws [set] ASTException
    * @throws [set] Exception
    * @throws [set] NoneValueException
    * @throws [set] IllegalMemoryException
    * @throws [set] Error
    * @throws [set] IndexOutOfBoundsException
    * @throws [set] IllegalArgumentException
    * @throws [set] ConcurrentModificationException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop macroInputs: Tokens
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop rParen: Token
    
    /**
    * @throws [set] IndexOutOfBoundsException
    * @throws [set] IllegalArgumentException
    * @throws [set] NoneValueException
    * @throws [get|set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop macroInputDecl: Decl
    
    /**
    * @throws NoneValueException
    * @throws ASTException
    * @throws OutOfMemoryError
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class MacroExpandParam <: FuncParam {
    @!APILevel[
        since: "22"
    ]
    public init()
    
    @!APILevel[
        since: "22"
    ]
    public mut prop fullIdentifier: Token
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop lSquare: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop macroAttrs: Tokens
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop rSquare: Token
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop lParen: Token
    
    /**
    * @throws [set] ASTException
    * @throws [set] ParseASTException
    * @throws [set] IndexOutOfBoundsException
    * @throws [set] IllegalArgumentException
    * @throws [set] Exception
    * @throws [set] NoneValueException
    * @throws [set] IllegalMemoryException
    * @throws [set] Error
    * @throws [set] ConcurrentModificationException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop macroInputs: Tokens
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop rParen: Token
    
    /**
    * @throws [set] IndexOutOfBoundsException
    * @throws [set] IllegalArgumentException
    * @throws [set] NoneValueException
    * @throws [get|set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop macroInputDecl: Decl
    
    /**
    * @throws NoneValueException
    * @throws ASTException
    * @throws OutOfMemoryError
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public enum DiagReportLevel {
    @!APILevel[
        since: "22"
    ]
    ERROR |
    @!APILevel[
        since: "22"
    ]
    WARNING
    @!APILevel[
        since: "22"
    ]
    public func level(): Int32
}

/**
* @throws IllegalArgumentException
* @throws IndexOutOfBoundsException
* @throws Error
* @throws NoneValueException
* @throws IllegalMemoryException
* @throws ASTException
*/
@!APILevel[
    since: "22",
    throwexception: true
]
public func diagReport(level: DiagReportLevel, tokens: Tokens, message: String, hint: String): Unit

@!APILevel[
    since: "22"
]
public class ASTException <: Exception {
    @!APILevel[
        since: "22"
    ]
    public init()
    
    @!APILevel[
        since: "22"
    ]
    public init(message: String)
}

@!APILevel[
    since: "22"
]
public class ParseASTException <: Exception {
    @!APILevel[
        since: "22"
    ]
    public init()
    
    @!APILevel[
        since: "22"
    ]
    public init(message: String)
}

@!APILevel[
    since: "22"
]
public open class Expr <: Node {
    @!APILevel[
        since: "22"
    ]
    public open func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public open func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class Block <: Expr {
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop lBrace: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop nodes: ArrayList<Node>
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop rBrace: Token
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class BinaryExpr <: Expr {
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    @!APILevel[
        since: "22"
    ]
    public mut prop leftExpr: Expr
    
    @!APILevel[
        since: "22"
    ]
    public mut prop op: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop rightExpr: Expr
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class UnaryExpr <: Expr {
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    @!APILevel[
        since: "22"
    ]
    public mut prop op: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop expr: Expr
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class IsExpr <: Expr {
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    @!APILevel[
        since: "22"
    ]
    public mut prop expr: Expr
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop keyword: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop shiftType: TypeNode
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class AsExpr <: Expr {
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    @!APILevel[
        since: "22"
    ]
    public mut prop expr: Expr
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop keyword: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop shiftType: TypeNode
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class ParenExpr <: Expr {
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop lParen: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop parenthesizedExpr: Expr
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop rParen: Token
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class LitConstExpr <: Expr {
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    @!APILevel[
        since: "22"
    ]
    public mut prop literal: Token
    
    /**
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class RefExpr <: Expr {
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    @!APILevel[
        since: "22"
    ]
    public mut prop identifier: Token
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop lAngle: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop typeArguments: ArrayList<TypeNode>
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop commas: Tokens
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop rAngle: Token
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class ReturnExpr <: Expr {
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop keyword: Token
    
    /**
    * @throws [get] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop expr: Expr
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class ThrowExpr <: Expr {
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop keyword: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop expr: Expr
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class PerformExpr <: Expr {
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop keyword: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop expr: Expr
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class ResumeExpr <: Expr {
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop keywordR : Token
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop keywordW : Option<Token>
    
    @!APILevel[
        since: "22"
    ]
    public mut prop withExpr: Option<Expr>
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop keywordT : Option<Token>
    
    @!APILevel[
        since: "22"
    ]
    public mut prop throwingExpr: Option<Expr>
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class AssignExpr <: Expr {
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop assign: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop leftExpr: Expr
    
    @!APILevel[
        since: "22"
    ]
    public mut prop rightExpr: Expr
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class CallExpr <: Expr {
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    @!APILevel[
        since: "22"
    ]
    public mut prop callFunc: Expr
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop lParen: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop arguments: ArrayList<Argument>
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop rParen: Token
    
    /**
    * @throws ASTException
    * @throws NoneValueException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class MemberAccess <: Expr {
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    @!APILevel[
        since: "22"
    ]
    public mut prop baseExpr: Expr
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop dot: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop field: Token
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop lAngle: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop typeArguments: ArrayList<TypeNode>
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop commas: Tokens
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop rAngle: Token
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class IfExpr <: Expr {
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop keywordI: Token
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop lParen: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop condition: Expr
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop rParen: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop ifBlock: Block
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop keywordE: Token
    
    /**
    * @throws [get] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop elseExpr: Expr
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class LetPatternExpr <: Expr {
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop keyword: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop pattern: Pattern
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop backArrow: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop expr: Expr
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class MatchExpr <: Expr {
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop keyword: Token
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop lParen: Token
    
    /**
    * @throws [get] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop selector: Expr
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop rParen: Token
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop lBrace: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop matchCases: ArrayList<MatchCase>
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop rBrace: Token
    
    /**
    * @throws ASTException
    * @throws NoneValueException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class WhileExpr <: Expr {
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop keyword: Token
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop lParen: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop condition: Expr
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop rParen: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop block: Block
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class DoWhileExpr <: Expr {
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop keywordD: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop block: Block
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop keywordW: Token
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop lParen: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop condition: Expr
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop rParen: Token
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class LambdaExpr <: Expr {
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop lBrace: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop funcParams: ArrayList<FuncParam>
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop doubleArrow: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop nodes: ArrayList<Node>
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop rBrace: Token
    
    /**
    * @throws ASTException
    * @throws NoneValueException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class SpawnExpr <: Expr {
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop keyword: Token
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop lParen: Token
    
    /**
    * @throws [get] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop threadContext: Expr
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop rParen: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop lambdaExpr: LambdaExpr
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class SynchronizedExpr <: Expr {
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop keyword: Token
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop lParen: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop structuredMutex: Expr
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop rParen: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop block: Block
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class TrailingClosureExpr <: Expr {
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    @!APILevel[
        since: "22"
    ]
    public mut prop expr: Expr
    
    @!APILevel[
        since: "22"
    ]
    public mut prop lambdaExpr: LambdaExpr
    
    /**
    * @throws ASTException
    * @throws NoneValueException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class TypeConvExpr <: Expr {
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    @!APILevel[
        since: "22"
    ]
    public mut prop targetType: PrimitiveType
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop lParen: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop expr: Expr
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop rParen: Token
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class ForInExpr <: Expr {
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop keywordF: Token
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop lParen: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop pattern: Pattern
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop keywordI: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop expr: Expr
    
    @!APILevel[
        since: "22"
    ]
    public mut prop keywordW: Token
    
    /**
    * @throws [get] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop patternGuard: Expr
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop rParen: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop block: Block
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class PrimitiveTypeExpr <: Expr {
    /**
    * @throws IndexOutOfBoundsException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(kind: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop keyword: Token
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class ArrayLiteral <: Expr {
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop lSquare: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop elements: ArrayList<Expr>
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop rSquare: Token
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class TupleLiteral <: Expr {
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop lParen: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop elements: ArrayList<Expr>
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop rParen: Token
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class RangeExpr <: Expr {
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [get] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop start: Expr
    
    @!APILevel[
        since: "22"
    ]
    public mut prop op: Token
    
    /**
    * @throws [get] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop end: Expr
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop colon: Token
    
    /**
    * @throws [get] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop step: Expr
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class SubscriptExpr <: Expr {
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    @!APILevel[
        since: "22"
    ]
    public mut prop baseExpr: Expr
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop lSquare: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop indexList: ArrayList<Expr>
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop rSquare: Token
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class JumpExpr <: Expr {
    /**
    * @throws IndexOutOfBoundsException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(kind: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop keyword: Token
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class IncOrDecExpr <: Expr {
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    @!APILevel[
        since: "22"
    ]
    public mut prop op: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop expr: Expr
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class Handler {
}

@!APILevel[
    since: "22"
]
public class TryExpr <: Expr {
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop keywordT: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop resourceSpec: ArrayList<VarDecl>
    
    @!APILevel[
        since: "22"
    ]
    public mut prop tryBlock: Block
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop keywordsC: Tokens
    
    @!APILevel[
        since: "22"
    ]
    public mut prop catchPatterns: ArrayList<Pattern>
    
    @!APILevel[
        since: "22"
    ]
    public mut prop catchBlocks: ArrayList<Block>
    
    @!APILevel[
        since: "22"
    ]
    public mut prop handlers: ArrayList<Handler>
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop keywordF: Token
    
    /**
    * @throws [get] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop finallyBlock: Block
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    /**
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class OptionalExpr <: Expr {
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public mut prop baseExpr: Expr
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop quest: Token
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class QuoteToken <: Expr {
    @!APILevel[
        since: "22"
    ]
    public mut prop tokens: Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class QuoteExpr <: Expr {
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop keyword: Token
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop lParen: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop exprs: ArrayList<Expr>
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop rParen: Token
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class WildcardExpr <: Expr {
    /**
    * @throws IndexOutOfBoundsException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(keyword: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop keyword: Token
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class VArrayExpr <: Expr {
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    @!APILevel[
        since: "22"
    ]
    public mut prop vArrayType: VArrayType
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop lParen: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop arguments: ArrayList<Argument>
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop rParen: Token
    
    /**
    * @throws ASTException
    * @throws NoneValueException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class MacroExpandExpr <: Expr {
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop at: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop identifier: Token
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop lSquare: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop macroAttrs: Tokens
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop rSquare: Token
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop lParen: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop macroInputs: Tokens
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop rParen: Token
    
    /**
    * @throws OutOfMemoryError
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

/**
* @throws IllegalArgumentException
* @throws IndexOutOfBoundsException
* @throws Error
* @throws NoneValueException
* @throws IllegalMemoryException
*/
@!APILevel[
    since: "22",
    throwexception: true
]
public func cangjieLex(code: String): Tokens

/**
* @throws IllegalArgumentException
* @throws IndexOutOfBoundsException
* @throws Error
* @throws NoneValueException
* @throws IllegalMemoryException
*/
@!APILevel[
    since: "22",
    throwexception: true
]
public func cangjieLex(code: String, truncated: Bool): Tokens

@!APILevel[
    since: "22"
]
public class MacroContextException <: Exception {
    @!APILevel[
        since: "22"
    ]
    public init()
    
    @!APILevel[
        since: "22"
    ]
    public init(message: String)
}

/**
* @throws IndexOutOfBoundsException
* @throws IllegalArgumentException
* @throws Error
* @throws NoneValueException
* @throws MacroContextException
* @throws IllegalMemoryException
*/
@!APILevel[
    since: "22",
    throwexception: true
]
public func assertParentContext(parentMacroName: String): Unit

/**
* @throws IndexOutOfBoundsException
* @throws IllegalArgumentException
* @throws Error
* @throws NoneValueException
* @throws IllegalMemoryException
*/
@!APILevel[
    since: "22",
    throwexception: true
]
public func insideParentContext(parentMacroName: String): Bool

/**
* @throws IndexOutOfBoundsException
* @throws IllegalArgumentException
* @throws Error
* @throws NoneValueException
* @throws IllegalMemoryException
*/
@!APILevel[
    since: "22",
    throwexception: true
]
public func setItem(key: String, value: String): Unit

/**
* @throws IndexOutOfBoundsException
* @throws IllegalArgumentException
* @throws Error
* @throws NoneValueException
* @throws IllegalMemoryException
*/
@!APILevel[
    since: "22",
    throwexception: true
]
public func setItem(key: String, value: Int64): Unit

/**
* @throws IndexOutOfBoundsException
* @throws IllegalArgumentException
* @throws Error
* @throws NoneValueException
* @throws IllegalMemoryException
*/
@!APILevel[
    since: "22",
    throwexception: true
]
public func setItem(key: String, value: Bool): Unit

/**
* @throws IllegalArgumentException
* @throws IndexOutOfBoundsException
* @throws Error
* @throws NoneValueException
* @throws IllegalMemoryException
*/
@!APILevel[
    since: "22",
    throwexception: true
]
public func setItem(key: String, value: Tokens): Unit

@!APILevel[
    since: "22"
]
public class MacroMessage {
    @!APILevel[
        since: "22"
    ]
    public func hasItem(key: String): Bool
    
    /**
    * @throws IndexOutOfBoundsException
    * @throws Exception
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func getString(key: String): String
    
    /**
    * @throws IndexOutOfBoundsException
    * @throws Exception
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func getInt64(key: String): Int64
    
    /**
    * @throws IndexOutOfBoundsException
    * @throws Exception
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func getBool(key: String): Bool
    
    /**
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    * @throws Exception
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func getTokens(key: String): Tokens
}

/**
* @throws IndexOutOfBoundsException
* @throws IllegalArgumentException
* @throws Error
* @throws NoneValueException
* @throws IllegalMemoryException
*/
@!APILevel[
    since: "22",
    throwexception: true
]
public func getChildMessages(children: String): ArrayList<MacroMessage>

@!APILevel[
    since: "22"
]
abstract sealed class Node <: ToTokens {
    @!APILevel[
        since: "22"
    ]
    public mut prop beginPos: Position
    
    @!APILevel[
        since: "22"
    ]
    public mut prop endPos: Position
    
    @!APILevel[
        since: "22"
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
    
    /**
    * @throws OutOfMemoryError
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func dump(): Unit
}

@!APILevel[
    since: "22"
]
public class Annotation <: Node {
    /**
    * @throws ConcurrentModificationException
    * @throws IllegalArgumentException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws IndexOutOfBoundsException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop at: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop identifier: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop arguments: ArrayList<Argument>
    
    @!APILevel[
        since: "22"
    ]
    public mut prop attributes: Tokens
    
    /**
    * @throws [get] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop condition: Expr
    
    /**
    * @throws ASTException
    * @throws NoneValueException
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class Modifier <: Node {
    @!APILevel[
        since: "22"
    ]
    public init(keyword: Token)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    @!APILevel[
        since: "22"
    ]
    public mut prop keyword: Token
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class GenericParam <: Node {
    @!APILevel[
        since: "22"
    ]
    public init(parameters: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop lAngle: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop parameters: Tokens
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop rAngle: Token
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class GenericConstraint <: Node {
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop keyword: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop typeArgument: TypeNode
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop upperBound: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop upperBounds: ArrayList<TypeNode>
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop bitAnds: Tokens
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class Body <: Node {
    @!APILevel[
        since: "22"
    ]
    public init(decls: ArrayList<Decl>)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop lBrace: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop decls: ArrayList<Decl>
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop rBrace: Token
    
    /**
    * @throws NoneValueException
    * @throws ASTException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class Argument <: Node {
    @!APILevel[
        since: "22"
    ]
    public init()
    
    @!APILevel[
        since: "22"
    ]
    public mut prop keyword: Token
    
    /**
    * @throws [get|set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop identifier: Token
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop colon: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop expr: Expr
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class MatchCase <: Node {
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop keywordC: Token
    
    /**
    * @throws [get] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop expr: Expr
    
    @!APILevel[
        since: "22"
    ]
    public mut prop patterns: ArrayList<Pattern>
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop bitOrs: Tokens
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop keywordW: Token
    
    /**
    * @throws [get] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop patternGuard: Expr
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop arrow: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop block: Block
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class Program <: Node {
    /**
    * @throws ConcurrentModificationException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    @!APILevel[
        since: "22"
    ]
    public mut prop packageHeader: PackageHeader
    
    @!APILevel[
        since: "22"
    ]
    public mut prop importLists: ArrayList<ImportList>
    
    @!APILevel[
        since: "22"
    ]
    public mut prop decls: ArrayList<Decl>
    
    /**
    * @throws ASTException
    * @throws NoneValueException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class PackageHeader <: Node {
    /**
    * @throws ConcurrentModificationException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    /**
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init()
    
    @!APILevel[
        since: "22"
    ]
    public mut prop accessible: Token
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop keywordM: Token
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop keywordP: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop prefixPaths: Tokens
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop prefixDots: Tokens
    
    @!APILevel[
        since: "22"
    ]
    public mut prop packageIdentifier: Token
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public enum ImportKind <: ToString {
    @!APILevel[
        since: "22"
    ]
    Single |
    @!APILevel[
        since: "22"
    ]
    Alias |
    @!APILevel[
        since: "22"
    ]
    All |
    @!APILevel[
        since: "22"
    ]
    Multi
    @!APILevel[
        since: "22"
    ]
    public func toString(): String
}

@!APILevel[
    since: "22"
]
public class ImportContent <: Node {
    @!APILevel[
        since: "22"
    ]
    public init()
    
    @!APILevel[
        since: "22"
    ]
    public mut prop importKind: ImportKind
    
    @!APILevel[
        since: "22"
    ]
    public mut prop prefixPaths: Tokens
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop prefixDots: Tokens
    
    @!APILevel[
        since: "22"
    ]
    public mut prop identifier: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop importAlias: Tokens
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop lBrace: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop items: ArrayList<ImportContent>
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop commas: Tokens
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop rBrace: Token
    
    @!APILevel[
        since: "22"
    ]
    public func isImportAlias(): Bool
    
    @!APILevel[
        since: "22"
    ]
    public func isImportAll(): Bool
    
    @!APILevel[
        since: "22"
    ]
    public func isImportMulti(): Bool
    
    @!APILevel[
        since: "22"
    ]
    public func isImportSingle(): Bool
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class ImportList <: Node {
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws NoneValueException
    * @throws Exception
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    @!APILevel[
        since: "22"
    ]
    public mut prop modifier: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop keywordI: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop content: ImportContent
    
    @!APILevel[
        since: "22"
    ]
    public func isImportMulti(): Bool
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class Constructor <: Node {
    @!APILevel[
        since: "22"
    ]
    public init()
    
    @!APILevel[
        since: "22"
    ]
    public mut prop annotations: ArrayList<Annotation>
    
    @!APILevel[
        since: "22"
    ]
    public mut prop identifier: Token
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop lParen: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop typeArguments: ArrayList<TypeNode>
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop rParen: Token
    
    /**
    * @throws NoneValueException
    * @throws ASTException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

extend<T> ArrayList<T> <: ToTokens {
    /**
    * @throws NoneValueException
    * @throws ASTException
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
}

extend<T> Array<T> <: ToTokens {
    /**
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
}

/**
* @throws ConcurrentModificationException
* @throws IllegalArgumentException
* @throws IndexOutOfBoundsException
* @throws Error
* @throws IllegalMemoryException
* @throws NoneValueException
* @throws Exception
* @throws ASTException
* @throws ParseASTException
*/
@!APILevel[
    since: "22",
    throwexception: true
]
public func parseDecl(input: Tokens, astKind!: String = ""): Decl

/**
* @throws ConcurrentModificationException
* @throws IllegalArgumentException
* @throws IndexOutOfBoundsException
* @throws Error
* @throws IllegalMemoryException
* @throws NoneValueException
* @throws Exception
* @throws ASTException
* @throws ParseASTException
*/
@!APILevel[
    since: "22",
    throwexception: true
]
public func parseDeclFragment(input: Tokens, startFrom!: Int64 = 0): (Decl, Int64)

/**
* @throws ConcurrentModificationException
* @throws Error
* @throws IllegalMemoryException
* @throws NoneValueException
* @throws Exception
* @throws IndexOutOfBoundsException
* @throws IllegalArgumentException
* @throws ASTException
* @throws ParseASTException
*/
@!APILevel[
    since: "22",
    throwexception: true
]
public func parseExpr(input: Tokens): Expr

/**
* @throws ConcurrentModificationException
* @throws Error
* @throws IllegalMemoryException
* @throws NoneValueException
* @throws Exception
* @throws IndexOutOfBoundsException
* @throws IllegalArgumentException
* @throws ASTException
* @throws ParseASTException
*/
@!APILevel[
    since: "22",
    throwexception: true
]
public func parseExprFragment(input: Tokens, startFrom!: Int64 = 0): (Expr, Int64)

/**
* @throws ConcurrentModificationException
* @throws IllegalArgumentException
* @throws IndexOutOfBoundsException
* @throws Error
* @throws IllegalMemoryException
* @throws NoneValueException
* @throws Exception
* @throws ASTException
* @throws ParseASTException
*/
@!APILevel[
    since: "22",
    throwexception: true
]
public func parseProgram(input: Tokens): Program

/**
* @throws ConcurrentModificationException
* @throws Error
* @throws IllegalMemoryException
* @throws Exception
* @throws NoneValueException
* @throws IndexOutOfBoundsException
* @throws IllegalArgumentException
* @throws ASTException
* @throws ParseASTException
*/
@!APILevel[
    since: "22",
    throwexception: true
]
public func parsePattern(input: Tokens): Pattern

/**
* @throws ConcurrentModificationException
* @throws Error
* @throws IllegalMemoryException
* @throws Exception
* @throws NoneValueException
* @throws IndexOutOfBoundsException
* @throws IllegalArgumentException
* @throws ASTException
* @throws ParseASTException
*/
@!APILevel[
    since: "22",
    throwexception: true
]
public func parsePatternFragment(input: Tokens, startFrom!: Int64 = 0): (Pattern, Int64)

/**
* @throws ConcurrentModificationException
* @throws Error
* @throws Exception
* @throws NoneValueException
* @throws IllegalMemoryException
* @throws IllegalArgumentException
* @throws IndexOutOfBoundsException
* @throws ASTException
* @throws ParseASTException
*/
@!APILevel[
    since: "22",
    throwexception: true
]
public func parseType(input: Tokens): TypeNode

/**
* @throws ConcurrentModificationException
* @throws Error
* @throws Exception
* @throws NoneValueException
* @throws IllegalMemoryException
* @throws IllegalArgumentException
* @throws IndexOutOfBoundsException
* @throws ASTException
* @throws ParseASTException
*/
@!APILevel[
    since: "22",
    throwexception: true
]
public func parseTypeFragment(input: Tokens, startFrom!: Int64 = 0): (TypeNode, Int64)

@!APILevel[
    since: "22"
]
public open class Pattern <: Node {
    @!APILevel[
        since: "22"
    ]
    public open func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public open func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class ConstPattern <: Pattern {
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws Exception
    * @throws NoneValueException
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    @!APILevel[
        since: "22"
    ]
    public mut prop litConstExpr: LitConstExpr
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class WildcardPattern <: Pattern {
    /**
    * @throws IndexOutOfBoundsException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(keyword: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop wildcard: Token
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class VarPattern <: Pattern {
    /**
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(identifier: Token)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop identifier: Token
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class VarOrEnumPattern <: Pattern {
    /**
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(identifier: Token)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop identifier: Token
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class ExceptTypePattern <: Pattern {
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws ConcurrentModificationException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    * @throws IllegalMemoryException
    * @throws Exception
    * @throws Error
    * @throws NoneValueException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public mut prop pattern: Pattern
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop colon: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop types: ArrayList<TypeNode>
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class CommandTypePattern <: Pattern {
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws ConcurrentModificationException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    * @throws IllegalMemoryException
    * @throws Exception
    * @throws Error
    * @throws NoneValueException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public mut prop pattern: Pattern
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop colon: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop types: ArrayList<TypeNode>
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class TypePattern <: Pattern {
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws Exception
    * @throws NoneValueException
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public mut prop pattern: Pattern
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop colon: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop patternType: TypeNode
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class EnumPattern <: Pattern {
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws Exception
    * @throws NoneValueException
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public mut prop constructor: Expr
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop lParen: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop patterns: ArrayList<Pattern>
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop commas: Tokens
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop rParen: Token
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class TuplePattern <: Pattern {
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws IllegalMemoryException
    * @throws Exception
    * @throws NoneValueException
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop lParen: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop patterns: ArrayList<Pattern>
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop commas: Tokens
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop rParen: Token
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public struct Position <: ToBytes {
    @!APILevel[
        since: "22"
    ]
    public let fileID: UInt32
    
    @!APILevel[
        since: "22"
    ]
    public let line: Int32
    
    @!APILevel[
        since: "22"
    ]
    public let column: Int32
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    @!APILevel[
        since: "22"
    ]
    public init(fileID: UInt32, line: Int32, column: Int32)
    
    @!APILevel[
        since: "22"
    ]
    public func isEmpty(): Bool
    
    @!APILevel[
        since: "22"
    ]
    public operator func ==(r: Position): Bool
    
    @!APILevel[
        since: "22"
    ]
    public operator func !=(r: Position): Bool
    
    /**
    * @throws OutOfMemoryError
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func dump(): Unit
    
    /**
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toBytes(): Array<UInt8>
}

@!APILevel[
    since: "22"
]
public interface ToBytes {
    @!APILevel[
        since: "22"
    ]
    func toBytes(): Array<UInt8>
}

@!APILevel[
    since: "22"
]
public struct Token <: ToBytes {
    @!APILevel[
        since: "22"
    ]
    public let kind: TokenKind
    
    @!APILevel[
        since: "22"
    ]
    public let value: String
    
    @!APILevel[
        since: "22"
    ]
    public let pos: Position
    
    @!APILevel[
        since: "22"
    ]
    public var delimiterNum: UInt16 = 1
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(kind: TokenKind)
    
    /**
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(kind: TokenKind, value: String)
    
    @!APILevel[
        since: "22"
    ]
    public func addPosition(fileID: UInt32, line: Int32, colum: Int32): Token
    
    @!APILevel[
        since: "22"
    ]
    public operator func ==(r: Token): Bool
    
    @!APILevel[
        since: "22"
    ]
    public operator func !=(r: Token): Bool
    
    /**
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public operator func +(r: Tokens): Tokens
    
    /**
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public operator func +(r: Token): Tokens
    
    /**
    * @throws IndexOutOfBoundsException
    * @throws OutOfMemoryError
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func dump(): Unit
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toBytes(): Array<UInt8>
}

@!APILevel[
    since: "22"
]
public enum TokenKind <: ToString {
    @!APILevel[
        since: "22"
    ]
    DOT |
    @!APILevel[
        since: "22"
    ]
    COMMA |
    @!APILevel[
        since: "22"
    ]
    LPAREN |
    @!APILevel[
        since: "22"
    ]
    RPAREN |
    @!APILevel[
        since: "22"
    ]
    LSQUARE |
    @!APILevel[
        since: "22"
    ]
    RSQUARE |
    @!APILevel[
        since: "22"
    ]
    LCURL |
    @!APILevel[
        since: "22"
    ]
    RCURL |
    @!APILevel[
        since: "22"
    ]
    EXP |
    @!APILevel[
        since: "22"
    ]
    MUL |
    @!APILevel[
        since: "22"
    ]
    MOD |
    @!APILevel[
        since: "22"
    ]
    DIV |
    @!APILevel[
        since: "22"
    ]
    ADD |
    @!APILevel[
        since: "22"
    ]
    SUB |
    @!APILevel[
        since: "22"
    ]
    INCR |
    @!APILevel[
        since: "22"
    ]
    DECR |
    @!APILevel[
        since: "22"
    ]
    AND |
    @!APILevel[
        since: "22"
    ]
    OR |
    @!APILevel[
        since: "22"
    ]
    COALESCING |
    @!APILevel[
        since: "22"
    ]
    PIPELINE |
    @!APILevel[
        since: "22"
    ]
    COMPOSITION |
    @!APILevel[
        since: "22"
    ]
    NOT |
    @!APILevel[
        since: "22"
    ]
    BITAND |
    @!APILevel[
        since: "22"
    ]
    BITOR |
    @!APILevel[
        since: "22"
    ]
    BITXOR |
    @!APILevel[
        since: "22"
    ]
    BITNOT |
    @!APILevel[
        since: "22"
    ]
    LSHIFT |
    @!APILevel[
        since: "22"
    ]
    RSHIFT |
    @!APILevel[
        since: "22"
    ]
    COLON |
    @!APILevel[
        since: "22"
    ]
    SEMI |
    @!APILevel[
        since: "22"
    ]
    ASSIGN |
    @!APILevel[
        since: "22"
    ]
    ADD_ASSIGN |
    @!APILevel[
        since: "22"
    ]
    SUB_ASSIGN |
    @!APILevel[
        since: "22"
    ]
    MUL_ASSIGN |
    @!APILevel[
        since: "22"
    ]
    EXP_ASSIGN |
    @!APILevel[
        since: "22"
    ]
    DIV_ASSIGN |
    @!APILevel[
        since: "22"
    ]
    MOD_ASSIGN |
    @!APILevel[
        since: "22"
    ]
    AND_ASSIGN |
    @!APILevel[
        since: "22"
    ]
    OR_ASSIGN |
    @!APILevel[
        since: "22"
    ]
    BITAND_ASSIGN |
    @!APILevel[
        since: "22"
    ]
    BITOR_ASSIGN |
    @!APILevel[
        since: "22"
    ]
    BITXOR_ASSIGN |
    @!APILevel[
        since: "22"
    ]
    LSHIFT_ASSIGN |
    @!APILevel[
        since: "22"
    ]
    RSHIFT_ASSIGN |
    @!APILevel[
        since: "22"
    ]
    ARROW |
    @!APILevel[
        since: "22"
    ]
    BACKARROW |
    @!APILevel[
        since: "22"
    ]
    DOUBLE_ARROW |
    @!APILevel[
        since: "22"
    ]
    RANGEOP |
    @!APILevel[
        since: "22"
    ]
    CLOSEDRANGEOP |
    @!APILevel[
        since: "22"
    ]
    ELLIPSIS |
    @!APILevel[
        since: "22"
    ]
    HASH |
    @!APILevel[
        since: "22"
    ]
    AT |
    @!APILevel[
        since: "22"
    ]
    QUEST |
    @!APILevel[
        since: "22"
    ]
    LT |
    @!APILevel[
        since: "22"
    ]
    GT |
    @!APILevel[
        since: "22"
    ]
    LE |
    @!APILevel[
        since: "22"
    ]
    GE |
    @!APILevel[
        since: "22"
    ]
    IS |
    @!APILevel[
        since: "22"
    ]
    AS |
    @!APILevel[
        since: "22"
    ]
    NOTEQ |
    @!APILevel[
        since: "22"
    ]
    EQUAL |
    @!APILevel[
        since: "22"
    ]
    WILDCARD |
    @!APILevel[
        since: "22"
    ]
    INT8 |
    @!APILevel[
        since: "22"
    ]
    INT16 |
    @!APILevel[
        since: "22"
    ]
    INT32 |
    @!APILevel[
        since: "22"
    ]
    INT64 |
    @!APILevel[
        since: "22"
    ]
    INTNATIVE |
    @!APILevel[
        since: "22"
    ]
    UINT8 |
    @!APILevel[
        since: "22"
    ]
    UINT16 |
    @!APILevel[
        since: "22"
    ]
    UINT32 |
    @!APILevel[
        since: "22"
    ]
    UINT64 |
    @!APILevel[
        since: "22"
    ]
    UINTNATIVE |
    @!APILevel[
        since: "22"
    ]
    FLOAT16 |
    @!APILevel[
        since: "22"
    ]
    FLOAT32 |
    @!APILevel[
        since: "22"
    ]
    FLOAT64 |
    @!APILevel[
        since: "22"
    ]
    RUNE |
    @!APILevel[
        since: "22"
    ]
    BOOLEAN |
    @!APILevel[
        since: "22"
    ]
    NOTHING |
    @!APILevel[
        since: "22"
    ]
    UNIT |
    @!APILevel[
        since: "22"
    ]
    STRUCT |
    @!APILevel[
        since: "22"
    ]
    ENUM |
    @!APILevel[
        since: "22"
    ]
    VARRAY |
    @!APILevel[
        since: "22"
    ]
    THISTYPE |
    @!APILevel[
        since: "22"
    ]
    PACKAGE |
    @!APILevel[
        since: "22"
    ]
    IMPORT |
    @!APILevel[
        since: "22"
    ]
    CLASS |
    @!APILevel[
        since: "22"
    ]
    INTERFACE |
    @!APILevel[
        since: "22"
    ]
    FUNC |
    @!APILevel[
        since: "22"
    ]
    MACRO |
    @!APILevel[
        since: "22"
    ]
    QUOTE |
    @!APILevel[
        since: "22"
    ]
    DOLLAR |
    @!APILevel[
        since: "22"
    ]
    LET |
    @!APILevel[
        since: "22"
    ]
    VAR |
    @!APILevel[
        since: "22"
    ]
    CONST |
    @!APILevel[
        since: "22"
    ]
    TYPE |
    @!APILevel[
        since: "22"
    ]
    INIT |
    @!APILevel[
        since: "22"
    ]
    THIS |
    @!APILevel[
        since: "22"
    ]
    SUPER |
    @!APILevel[
        since: "22"
    ]
    IF |
    @!APILevel[
        since: "22"
    ]
    ELSE |
    @!APILevel[
        since: "22"
    ]
    CASE |
    @!APILevel[
        since: "22"
    ]
    TRY |
    @!APILevel[
        since: "22"
    ]
    CATCH |
    @!APILevel[
        since: "22"
    ]
    FINALLY |
    @!APILevel[
        since: "22"
    ]
    FOR |
    @!APILevel[
        since: "22"
    ]
    DO |
    @!APILevel[
        since: "22"
    ]
    WHILE |
    @!APILevel[
        since: "22"
    ]
    THROW |
    @!APILevel[
        since: "22"
    ]
    RETURN |
    @!APILevel[
        since: "22"
    ]
    CONTINUE |
    @!APILevel[
        since: "22"
    ]
    BREAK |
    @!APILevel[
        since: "22"
    ]
    IN |
    @!APILevel[
        since: "22"
    ]
    NOT_IN |
    @!APILevel[
        since: "22"
    ]
    MATCH |
    WHERE |
    EXTEND |
    @!APILevel[
        since: "22"
    ]
    WITH |
    @!APILevel[
        since: "22"
    ]
    PROP |
    @!APILevel[
        since: "22"
    ]
    STATIC |
    @!APILevel[
        since: "22"
    ]
    PUBLIC |
    @!APILevel[
        since: "22"
    ]
    PRIVATE |
    @!APILevel[
        since: "22"
    ]
    INTERNAL |
    @!APILevel[
        since: "22"
    ]
    PROTECTED |
    @!APILevel[
        since: "22"
    ]
    OVERRIDE |
    @!APILevel[
        since: "22"
    ]
    REDEF |
    @!APILevel[
        since: "22"
    ]
    ABSTRACT |
    @!APILevel[
        since: "22"
    ]
    SEALED |
    @!APILevel[
        since: "22"
    ]
    OPEN |
    @!APILevel[
        since: "22"
    ]
    FOREIGN |
    @!APILevel[
        since: "22"
    ]
    INOUT |
    @!APILevel[
        since: "22"
    ]
    MUT |
    @!APILevel[
        since: "22"
    ]
    UNSAFE |
    @!APILevel[
        since: "22"
    ]
    OPERATOR |
    @!APILevel[
        since: "22"
    ]
    SPAWN |
    @!APILevel[
        since: "22"
    ]
    SYNCHRONIZED |
    @!APILevel[
        since: "22"
    ]
    UPPERBOUND |
    @!APILevel[
        since: "22"
    ]
    MAIN |
    @!APILevel[
        since: "22"
    ]
    IDENTIFIER |
    @!APILevel[
        since: "22"
    ]
    PACKAGE_IDENTIFIER |
    @!APILevel[
        since: "22"
    ]
    INTEGER_LITERAL |
    @!APILevel[
        since: "22"
    ]
    RUNE_BYTE_LITERAL |
    @!APILevel[
        since: "22"
    ]
    FLOAT_LITERAL |
    @!APILevel[
        since: "22"
    ]
    COMMENT |
    @!APILevel[
        since: "22"
    ]
    NL |
    @!APILevel[
        since: "22"
    ]
    END |
    @!APILevel[
        since: "22"
    ]
    SENTINEL |
    @!APILevel[
        since: "22"
    ]
    RUNE_LITERAL |
    @!APILevel[
        since: "22"
    ]
    STRING_LITERAL |
    @!APILevel[
        since: "22"
    ]
    SINGLE_QUOTED_STRING_LITERAL |
    @!APILevel[
        since: "22"
    ]
    JSTRING_LITERAL |
    @!APILevel[
        since: "22"
    ]
    MULTILINE_STRING |
    @!APILevel[
        since: "22"
    ]
    MULTILINE_RAW_STRING |
    @!APILevel[
        since: "22"
    ]
    BOOL_LITERAL |
    @!APILevel[
        since: "22"
    ]
    UNIT_LITERAL |
    @!APILevel[
        since: "22"
    ]
    DOLLAR_IDENTIFIER |
    @!APILevel[
        since: "22"
    ]
    ANNOTATION |
    @!APILevel[
        since: "22"
    ]
    AT_EXCL |
    @!APILevel[
        since: "22"
    ]
    ILLEGAL |
    @!APILevel[
        since: "22"
    ]
    HANDLE |
    @!APILevel[
        since: "22"
    ]
    PERFORM |
    @!APILevel[
        since: "22"
    ]
    RESUME |
    @!APILevel[
        since: "22"
    ]
    THROWING |
    @!APILevel[
        since: "22"
    ]
    ...
    @!APILevel[
        since: "22"
    ]
    public operator func ==(right: TokenKind): Bool
    
    @!APILevel[
        since: "22"
    ]
    public operator func !=(right: TokenKind): Bool
    
    @!APILevel[
        since: "22"
    ]
    public func toString(): String
}

/**
* @throws IndexOutOfBoundsException
*/
@!APILevel[
    since: "22",
    throwexception: true
]
public func getTokenKind(no: UInt16): TokenKind

@!APILevel[
    since: "22"
]
public class TokensIterator <: Iterator<Token> {
    @!APILevel[
        since: "22"
    ]
    public init(tokens: Tokens)
    
    /**
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func peek(): Option<Token>
    
    /**
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func seeing(kind: TokenKind): Bool
    
    /**
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func next(): Option<Token>
}

@!APILevel[
    since: "22"
]
public open class Tokens <: ToString & Iterable<Token> & ToBytes {
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(tokArray: Array<Token>)
    
    /**
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(tokArrayList: ArrayList<Token>)
    
    @!APILevel[
        since: "22"
    ]
    public open prop size: Int64
    
    /**
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public open func get(index: Int64): Token
    
    @!APILevel[
        since: "22"
    ]
    public func iterator(): TokensIterator
    
    @!APILevel[
        since: "22"
    ]
    public func concat(tokens: Tokens): Tokens
    
    /**
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public operator func [](index: Int64): Token
    
    /**
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public open operator func [](range: Range<Int64>): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public operator func +(r: Tokens): Tokens
    
    /**
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public operator func +(r: Token): Tokens
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public open func append(tokens: Tokens): Tokens
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public open func append(token: Token): Tokens
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func append(node: Node): Tokens
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func remove(index: Int64): Tokens
    
    /**
    * @throws IndexOutOfBoundsException
    * @throws OutOfMemoryError
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func dump(): Unit
    
    /**
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    * @throws IllegalMemoryException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toString(): String
    
    /**
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toBytes(): Array<UInt8>
}

@!APILevel[
    since: "22"
]
public interface ToTokens {
    @!APILevel[
        since: "22"
    ]
    func toTokens(): Tokens
}

extend Token <: ToTokens {
    /**
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
}

extend Tokens <: ToTokens {
    @!APILevel[
        since: "22"
    ]
    public func toTokens(): Tokens
}

extend Int64 <: ToTokens {
    /**
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
}

extend Int32 <: ToTokens {
    /**
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
}

extend Int16 <: ToTokens {
    /**
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
}

extend Int8 <: ToTokens {
    /**
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
}

extend UInt64 <: ToTokens {
    /**
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
}

extend UInt32 <: ToTokens {
    /**
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
}

extend UInt16 <: ToTokens {
    /**
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
}

extend UInt8 <: ToTokens {
    /**
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
}

extend Float64 <: ToTokens {
    /**
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
}

extend Float32 <: ToTokens {
    /**
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
}

extend Float16 <: ToTokens {
    /**
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
}

extend Bool <: ToTokens {
    /**
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
}

extend Rune <: ToTokens {
    /**
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
}

extend String <: ToTokens {
    /**
    * @throws IndexOutOfBoundsException
    * @throws IllegalArgumentException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
}

@!APILevel[
    since: "22"
]
public open class TypeNode <: Node {
    @!APILevel[
        since: "22"
    ]
    public mut prop typeParameterName: Token
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop colon: Token
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public open func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public open func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class PrimitiveType <: TypeNode {
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws Exception
    * @throws NoneValueException
    * @throws IllegalMemoryException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop keyword: Token
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class RefType <: TypeNode {
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws Exception
    * @throws NoneValueException
    * @throws IllegalMemoryException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    @!APILevel[
        since: "22"
    ]
    public mut prop identifier: Token
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop lAngle: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop typeArguments: ArrayList<TypeNode>
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop commas: Tokens
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop rAngle: Token
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class QualifiedType <: TypeNode {
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws Exception
    * @throws NoneValueException
    * @throws IllegalMemoryException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    @!APILevel[
        since: "22"
    ]
    public mut prop baseType: TypeNode
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop dot: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop identifier: Token
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop lAngle: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop typeArguments: ArrayList<TypeNode>
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop commas: Tokens
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop rAngle: Token
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class ParenType <: TypeNode {
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws Exception
    * @throws NoneValueException
    * @throws IllegalMemoryException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop lParen: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop parenthesizedType: TypeNode
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop rParen: Token
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class TupleType <: TypeNode {
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws Exception
    * @throws NoneValueException
    * @throws IllegalMemoryException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop lParen: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop types: ArrayList<TypeNode>
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop rParen: Token
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class ThisType <: TypeNode {
    /**
    * @throws ConcurrentModificationException
    * @throws IllegalMemoryException
    * @throws Exception
    * @throws Error
    * @throws NoneValueException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    @!APILevel[
        since: "22"
    ]
    public mut prop keyword: Token
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class PrefixType <: TypeNode {
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws Exception
    * @throws NoneValueException
    * @throws IllegalMemoryException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    @!APILevel[
        since: "22"
    ]
    public mut prop prefixOps: Tokens
    
    @!APILevel[
        since: "22"
    ]
    public mut prop baseType: TypeNode
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class FuncType <: TypeNode {
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws Exception
    * @throws NoneValueException
    * @throws IllegalMemoryException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    @!APILevel[
        since: "22"
    ]
    public mut prop keyword: Token
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop lParen: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop types: ArrayList<TypeNode>
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop commas: Tokens
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop rParen: Token
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop arrow: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop returnType: TypeNode
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public class VArrayType <: TypeNode {
    /**
    * @throws ConcurrentModificationException
    * @throws Error
    * @throws Exception
    * @throws NoneValueException
    * @throws IllegalMemoryException
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    * @throws ParseASTException
    * @throws ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public init(inputs: Tokens)
    
    @!APILevel[
        since: "22"
    ]
    public init()
    
    @!APILevel[
        since: "22"
    ]
    public mut prop keyword: Token
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop lAngle: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop elementTy: TypeNode
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop dollar: Token
    
    @!APILevel[
        since: "22"
    ]
    public mut prop size: Token
    
    /**
    * @throws [set] ASTException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public mut prop rAngle: Token
    
    /**
    * @throws IllegalArgumentException
    * @throws IndexOutOfBoundsException
    */
    @!APILevel[
        since: "22",
        throwexception: true
    ]
    public func toTokens(): Tokens
    
    @!APILevel[
        since: "22"
    ]
    public func traverse(v: Visitor): Unit
}

@!APILevel[
    since: "22"
]
public abstract class Visitor {
    @!APILevel[
        since: "22"
    ]
    public func breakTraverse(): Unit
}

